home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Game Programming Gurus
/
Tricks of the Windows Game Programming Gurus (SAMS)(2000).iso
/
Articles
/
AIandBeyond
/
unroller2.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1999-05-14
|
1KB
|
35 lines
#include <iostream.h>
#include <math.h>
#include <complex.h>
#include <fstream.h>
void main(void)
{
int k, n; // integers for the loops
complex mult; // a complex number
float prod; // a floating point number for the real component
complex i=complex(0, 1); // the square root of -1
fstream file; // a file to store the generated source code in
file.open("FFT.C", ios::out); // opens a text file
for(k=0; k<512; k++) // loops through each sub harmonic
{
for(n=0; n<1024; n++) // loops through each sample
{
mult=exp((-2*M_PI*i*k*(n+1))/1024); // calculates the equation
prod=real(mult); // gets the real component
if(prod!=0) // eliminates useless lines of code
{
if(prod!=1) // only multiplies if the product isn't 1
{
file<<" Net.Input["<<k<<"]=+X["<<n<<"]"<<"*"<<prod<<";\n";
}
else // prints only the variable because the product is 1
{
file<<" Net.Input["<<k<<"]=+X["<<n<<"];\n";
}
}
}
}
file.close(); // closes the file
}